#coding=utf-8

import queue
from tkinter import *
import tkinter as tk
from TabBase import *
from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
import random
import platform
import getpass

post_url='https://v.qq.com/doki/doki_note/new?starid=1661556&dataKey=starid%3D1661556%26ftid%3D51661556%26targetid%3D2657077965'
if platform.system() == "Windows":
	doc_path = ''
else:
	doc_path = u"/Users/{}/Documents".format(getpass.getuser())
	try:
		os.path.join(doc_path, u'陈意涵')
		os.mkdir(doc_path+u'/陈意涵')
	except Exception as e:
		pass
	doc_path = doc_path+u'/陈意涵/'

class TabPost(TabBase):
	"""docstring for TabPost"""
	def __init__(self, view):
		self.post_count_var = StringVar()
		self.status = "_发帖"
		super(TabPost, self).__init__(view)
		self.all_total_var.set("总发帖：0")
		self.now_total_var.set("当前发帖：0")

	def setupUI(self, view):
		super().setupUI(self.mainView)

		Label(self.leftView, text="账户信息").grid(sticky=W)
		Listbox(self.leftView,listvariable=self.accounts_list_var,width=55,height=14).grid(row=1,sticky=W)
		Label(self.leftView, text="话术文本").grid(row=4, sticky=W)
		Listbox(self.leftView,listvariable=self.talks_var,width=55,height=14).grid(row=5,sticky=W)

		imgInfo = PhotoImage(file = '2.gif')
		lblImage = Label(view, image = imgInfo)
		lblImage.image = imgInfo
		lblImage.grid(row=14,column=2,sticky=S,columnspan=2)

		fieldView = Frame(view)
		fieldView.grid(row=6,column=2,columnspan=2,pady=5,padx=5)

		Entry(fieldView, width = 5,textvariable=self.post_count_var).grid(row=0,column=1)
		Label(fieldView,text='发帖数量：').grid(row=0,column=0)
		self.post_count_var.set("3")
		
		Button(view, text='选择评论话术', width = 15, height=1, command=self.open_talks).grid(row=3,column=3,padx=10)



	def add_total(self):	# 总数增加，评论，发帖子
		self.all_total += 1
		self.now_total += 1
		self.all_total_var.set("总发帖：{}".format(self.all_total))
		self.now_total_var.set("当前发帖：{}".format(self.now_total))


	def start(self):
		count = 0
		try:
			count = int(self.post_count_var.get())
		except:
			count = 0
		if count <= 0:
			tkinter.messagebox.showerror("温馨提示","发帖数量应是大于等于1的数字")
			return
		super().start()


	def work(self):

		count = int(self.post_count_var.get())
		index = 0

		while index < count:

			index = index + 1
			try:
				print("准备开始发第{}个帖子".format(index))
				self.driver.get(post_url)
			except:
				pass

			try:
				self.driver.switch_to_alert().accept()
			except Exception as e:
				pass

			try:
				print("查找发帖的标题")
				title = self.wait.until(EC.element_to_be_clickable((By.ID, "note_title")))
				title.click()
				title_text = random.choice(titles)
				context_text = random.choice(self.talks)
				context_text2 = random.choice(self.talks)
				randscale = random.randint(10, 20)
				if randscale > len(context_text2):
					randscale = len(context_text2)
				title_send = title_text[:-randscale] + context_text2[0:randscale-5]
				print("填写发帖的标题")
				title.send_keys(title_send)
				print("查找发帖的内容")
				context = self.driver.find_element_by_id("note_content")
				context.click()
				print("填写发表的内容")
				context.send_keys(context_text)
				print("点击提交按钮")
				self.wait.until(EC.element_to_be_clickable((By.ID, "note_pub"))).click()
				print("提交成功，等待页面跳转")
			except:
				index = index - 1
				continue

			def is_add(driver):
				return "https://v.qq.com/doki/doki_note/detail" in self.driver.current_url
			try:
				self.wait.until(is_add)
			except Exception as e:
				print("等待超时,再次发帖")
				continue

			print("保存发帖的链接")
			link_files = open(doc_path + u'发帖链接汇总.txt', 'a+')
			link_files.write(self.driver.current_url)
			link_files.write("\n")
			link_files.close()
			print("保存成功")
			self.add_total()
			if self.is_stop_or_pause():
				return True

		return False




titles = u"""
【陈意涵】#陈意涵这就是灌篮# #陈意涵1017生日快乐#做你的意中人
【陈意涵】#陈意涵这就是灌篮# #陈意涵1017生日快乐#涵仔加油
【陈意涵】#陈意涵这就是灌篮# #陈意涵1017生日快乐#涵涵冲啊啊啊啊
【陈意涵】#陈意涵这就是灌篮# #陈意涵1017生日快乐#我爱你涵涵
【陈意涵】#陈意涵这就是灌篮# #陈意涵1017生日快乐#涵涵你好美
【陈意涵】#陈意涵这就是灌篮# #陈意涵1017生日快乐#大家doki加油啊啊啊
【陈意涵】#陈意涵这就是灌篮# #陈意涵1017生日快乐#做你的盖世英雄
【陈意涵】#陈意涵这就是灌篮# #陈意涵1017生日快乐#涵涵生日快乐
【陈意涵】#陈意涵这就是灌篮# #陈意涵1017生日快乐#从来没有想到会遇见你
【陈意涵】#陈意涵这就是灌篮# #陈意涵1017生日快乐#你是上天最好的礼物
【陈意涵】#陈意涵这就是灌篮# #陈意涵1017生日快乐#数据第一意涵第二
【陈意涵】#陈意涵这就是灌篮# #陈意涵1017生日快乐#我也曾把光阴浪费
【陈意涵】#陈意涵这就是灌篮# #陈意涵1017生日快乐#美得像一首抒情诗
【陈意涵】#陈意涵这就是灌篮# #陈意涵1017生日快乐#意涵就是这条街最靓的仔
【陈意涵】#陈意涵这就是灌篮# #陈意涵1017生日快乐#我们陪你一起走到最后
【陈意涵】#陈意涵这就是灌篮# #陈意涵1017生日快乐#慌乱过我的年华
【陈意涵】#陈意涵这就是灌篮# #陈意涵1017生日快乐#谢谢意涵的微笑
【陈意涵】#陈意涵这就是灌篮# #陈意涵1017生日快乐#一睁眼便看见你在笑
【陈意涵】#陈意涵这就是灌篮# #陈意涵1017生日快乐#不如你，都不如你
【陈意涵】#陈意涵这就是灌篮# #陈意涵1017生日快乐#一个人的盖世英雄
【陈意涵】#陈意涵这就是灌篮# #陈意涵1017生日快乐#春风十里不如你
【陈意涵】[心]这场仲夏夜开启的梦，我们陪你一起走到最后吧[爱你]
【陈意涵】谢谢意涵的微笑，慌乱过我的年华
【陈意涵】哪有什么岁月静好，不过是一睁眼便看见你在笑罢了
【陈意涵】谢谢你，让平凡的我能够成为另一个人的盖世英雄。
【陈意涵】南风过境，春风十里不如你[心]
【陈意涵】[心]有你的地方，就是心动现场[米奇比心]
【陈意涵】万物复苏，春暖花开，都是因为你的出现。
【陈意涵】意涵就是这条街最靓的仔，无论走到哪都是最靓丽的风景线，意涵，我爱你
【陈意涵】难道你不知道吗自从我第一次看到你我所走的每一步都是为了更接近你啊陈意涵
【陈意涵】我做不来好人，也不敢做坏人，只想做你的意中人。
【陈意涵】你是我的玫瑰你是我的花，意中人的情话只给您夸[doge]
【陈意涵】我以前觉得追星肤浅，认识你之后才知道是我肤浅，陈意涵我爱你??
【陈意涵】哪里有什么百万文案，不过是因为你，没有你字字珠玑也不足惜
【陈意涵】你就像是三棱镜，因为你平凡的阳光也能变成彩虹
【陈意涵】不太冷的寒冬，盛夏夜的风，繁星点缀的天空和每个有你的梦
【陈意涵】我愿做你公路上的路标，见证你驶向一个又一个终点就好
【陈意涵】我看着东边的日出西边的雨，挂念远方的天气和心里的你
【陈意涵】该说的都说的清楚了，何必掩饰呢.意中人??陈意涵，不需要掩饰.
【陈意涵】我还是很喜欢你，就像星辰倾泻，月光与血。愿你万事胜意，闪耀星空。
【陈意涵】因为有你，终于让我的生命有了一点点的不一样。[心]
【陈意涵】[心]今夕何夕，见此佳人。涵非凡间等闲辈，是那仙女下凡来。
【陈意涵】与涵初相识，犹如故人归。与涵再相见，便是金风玉露一相逢，胜却人间无数。
【陈意涵】[心][心]春水初生，春林初盛，春风十里，不如一个陈意涵。
【陈意涵】等闲易变常人心，唯有故人心不变。即是意中人才俊，一心一意守一涵。
【陈意涵】情不知所起，一往而深，生者可以死，死者可以生。唯独此情，永世不灭
【陈意涵】瘦影自怜秋水照，卿须怜我我怜卿。伊人是那天上星，照我心中一轮月。
【陈意涵】我把平生卷起，星辰摘下，恰似你一瞥一笑直穿心房
【陈意涵】意下有一心，涵中纳三川。百川纳海不及一心陈情[心]
【陈意涵】踏花而去，留一世独白，叹一生无奈，只为与你相知而遇。
【陈意涵】一颦一笑使人醉，一生一世意中人[心]
【陈意涵】相思树底说相思，思涵念涵你可知？[害羞]
【陈意涵】若教美中无意涵，不信人间有仙女。直道伊人天上有，未妨恋她至白头。
【陈意涵】重温旧梦赏涵字，人生乐趣亦无忧。不关人间风与月，我守意涵终一生
【陈意涵】逍遥人间游戏王，一颦一笑皆动心。不喜人生诸多事，唯独恋这美人心。
【陈意涵】莫道不消魂，只因未遇她。一见倾城笑，回眸误众生
【陈意涵】认识你之前，山是山，海是海，认识你之后，山海都是你[太开心]
【陈意涵】你见山川多清秀，星辰多温柔，恰似你眼眸
【陈意涵】你笑起来的时候，天空都变了颜色，粉红色。
【陈意涵】你是大千世界一汪清泉，愿那些风马牛与你永不相及。永随你，去哪??
【陈意涵】我喜欢穿过窗帘缝隙的阳光喜欢清凉秋日的晚风还喜欢有你存在的每一个年月
【陈意涵】任百花无数，我只摘一朵；任弱水三千，我只取一瓢；任群芳百艳，我只在乎你
【陈意涵】人活着，不能没有方向。谢谢我的涵涵，给了我活着的方向~与你一起进步
【陈意涵】腹有诗书气自华，所以有才的你气质真的与众不同。
【陈意涵】只要是你开车，无论是玛莎拉蒂还是拖拉机，我们都喜欢
【陈意涵】你笑，意中人的心就化了，你哭，意中人的心就碎了
【陈意涵】爱你就像x=0，y=0，一条直线，不会转弯
【陈意涵】多希望能学会分身术，哪有就有千千万万个我可以保护你。
【陈意涵】不管我去哪，我最想留在你身边。
【陈意涵】人间不值得，而陈意涵值得[米奇比心]
【陈意涵】孙悟空的月光宝盒为紫霞仙子打开，意中人的爆炸盒子为意涵仙女而做
【陈意涵】赠人玫瑰，手有余香。爱涵一生，爱有回音
【陈意涵】我对感情很挑剔，只对你有感觉
【陈意涵】话唠的原因还不是因为太喜欢你了
【陈意涵】你从一个陌生人，变成了一个我最舍不得离开的人
【陈意涵】一首诗词天涯路，始信人间有真爱。涵若幸福福安康，我替人间许平安。
【陈意涵】风筝为什么飞得高，因为地上有人蹒跚奔跑。我愿意做那个奔跑的人
【陈意涵】那世人眼里的功名利禄，因为涵涵你，我风轻云淡，从此，为爱而生。
【陈意涵】喜欢一切可爱的人与事，喜欢世间外物，但我更喜欢你，因为你是可爱本身。
【陈意涵】月色真美，就和你一样
【陈意涵】你可以是一杯牛奶温暖我的胃，也可以是一杯酒光是香味就让我沉醉
【陈意涵】上天帮你造就了一双巧手，第一次见面，就偷偷偷走我的心。
【陈意涵】我真的不敢看向陈意涵的眼睛我怕她眼底的温柔融化了我
【陈意涵】那清冷的寒风，因为涵涵你，我身着单薄衣裳也不觉冷，从此，心中有阳光。
【陈意涵】那街边的霓虹灯光，因为涵涵你，我看见了人间繁华，从此，不怕闹市烦扰。
【陈意涵】那天空的乌云，因为涵涵你，我看见了雨后彩虹，从此，不怕风雨。
【陈意涵】希望每晚星亮入梦时，有人来代替我吻你
【陈意涵】喜欢你到整个世界森林里的老虎全部融化成黄油[心]
"""

titles = titles.split("\n")
count = len(titles)
titles = titles[1:count-1]
